Entwurf der Datenbank „Bibliothek“

In der Bibliothek beobachten wir (insbesondere) Bücher, Leser (=Benutzer), Ausleihzettel.
Den Zusammenhang stellen wir in einem
ER-Diagramm (Entity-Relationship-Modell) dar:




Ein Leser leiht kein, ein oder mehrere Bücher.
Ein Buch wird (im Laufe der Zeit) von keinem, einem oder mehreren Lesern ausgeliehen.

Wir verfeinern das ER-Diagramm. "mc" steht für "multiple conditional" (kein, ein oder mehrere):




Die mc:mc-Beziehung wird in zwei 1:m-Beziehungen aufgespalten.
Es ergeben sich folgende Relationen (mit einigen, wenigen Attributen):




Zu den Entities notieren wir einige Attribute (Eigenschaften).




Die Primärschlüssel (Attribute, die ein Element eindeutig beschreiben) sind unterstrichen: LeserNr in Leser, BuchNr in Buch.

In der Relationstabelle leiht reicht das Datum allein nicht zur Kennzeichnung genau eines Eintrages aus. Erst die Kombination BuchNr, LeserNr, Datum ist eindeutig (wenn die wiederholte Ausleihe einen Buches an den selben Leser an dem selben Tag ausgeschlossen ist).

Es ergeben sich folgende Relationen:

Leser (LeserNr, LeserName, LeserAlter*, LeserGeschlecht, Leserbetreuer)
Buch (BuchNr, BuchAutor, BuchTitel, BuchPreis)
leiht (BuchNr, LeserNr, Datum)

*Das LeserAlter ist eigentlich ungeeignet, weil es sich ändert. Besser wäre das Geburtsjahr geeignet, aus dem sich das Alter ermitteln lässt.